import express from "express";
import PageAssets from "./model.js";
import auth from "../token/auth.js";
import User from "../user/model.js";

const router = express.Router();

// 修改
router.put("/", auth, async (req, res) => {
  const { operatorId } = req.body;
  if (!operatorId) {
    return res.status(400).json({ error: "缺少操作者id" });
  }
  // 查询操作者身份
  const operator = await User.findById(operatorId);
  if (!operator || !["社长", "管理员"].includes(operator.position)) {
    return res.status(403).json({ error: "你不是社长或管理员" });
  }
  try {
    const updateFields = req.body;
    const result = await PageAssets.findOneAndUpdate(
      { key: "global" },
      { $set: updateFields },
      { new: true }
    );
    if (!result) {
      return res.status(404).json({ error: "数据不存在，请先创建" });
    }
    res.json({ message: "修改成功", data: result });
  } catch (err) {
    res.status(500).json({ error: "修改失败", detail: err.message });
  }
});

// 查询（如果没有则自动创建并返回）
router.get("/", async (req, res) => {
  try {
    let data = await PageAssets.findOne({ key: "global" });
    if (!data) {
      data = await PageAssets.create({ key: "global" });
    }
    res.json(data);
  } catch (err) {
    res.status(500).json({ error: "查询失败", detail: err.message });
  }
});
export default router;
